package top.vanchor.flexible.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import top.vanchor.flexible.entity.BackAdmin;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Ding
 * @since 2022-01-27
 */
public interface IBackAdminService extends IService<BackAdmin> {

    /**
     * 后台根据用户名密码查询管理员（登录验证）
     * @param username 用户名
     * @param password 密码
     * @return BackAdmin
     */
    BackAdmin toLogin(String username, String password);

    /**
     * 获取管理员列表
     *
     * @param pageNo   当前页
     * @param pageSize 每页显示数量
     * @param title    查询key
     * @return PageInfo<BackAdmin>
     */
    IPage<BackAdmin> getList(Integer pageNo, Integer pageSize, String title);

    /**
     * 添加 OR 编辑管理员信息
     * @param bean BackAdmin实体
     * @return 影响行数
     */
    int doEdit(BackAdmin bean);

    /**
     * 根据账号（管理员名）查询管理员数（查看是否存在该用户）
     * @param aUsername 管理员名
     * @return 结果行数
     */
    int getByUsername(String aUsername);

    /**
     * 根据id集合删除管理员
     * @param ids id集合
     * @return 影响行数
     */
    int doDeleteBy(List<Integer> ids);

    BackAdmin getAdminUserById(Integer id);

    /**
     * 更新登录者信息
     * @Description 重新记录ip、登录次数等
     * @Author Ding
     * @date 2022/8/7
     * @param admin 登录用户
     */
    void updateLoginData(BackAdmin admin);

    /**
     * 根据角色ID集合删除赋予该角色的管理员
     * @Description
     * @Author Ding
     * @date 2022/8/8
     * @param ids ids
     */
    void deleteUserByGroupIds(List<Integer> ids);
}
